The present invention relates generally to computers and networks and, more particularly, relates to network query and matching of widely distributed objects, such as over the Internet.
In common computing and software parlance “objects” are units of code that are discrete software components. These objects often model real-world objects, although sometimes programmers create objects specifically for things that it is desired to compute. Conventionally, each object is made according to a template of a generic class of object, the template being defined so that objects can share models and reuse the class definitions in their code. Each object is an instance of a particular class or subclass with the class's own methods or procedures and data variables. Other software components send messages to objects with requests. The objects send other messages back with their responses. In order to assure that disparate objects on disparate systems and platforms will interact together in a useful way, a standardized object programming architecture and interface, such as the Common Object Request Broker Architecture (CORBA) and the Interface Definition Language (IDL) each of the Object Management Group (OMG), has been defined.
In CORBA and IDL, a software system known as a “trader” is sometimes employed. The trader matches queries with resources. In operation with CORBA objects, for example, a CORBA Trader allows a client to dynamically query for provider resources. The query searches the provider resources for occurrence of certain object characteristics, as specified in the particular query, and returns objects having the certain characteristics. With the disparate clients and provider resources, having disparate architecture and systems, of most CORBA environments, the CORBA and IDL standard allows for interoperability of the objects, and requisite communicability among systems for such interoperability.
Although CORBA provides certain advantages in conventional object-oriented environments, many other environments, which are traditionally not strictly object-oriented in conformance to particular object standards (e.g., non-CORBA objects), would benefit from interoperability of models and schemes and trading of resources for such interoperability. Furthermore, it would be advantageous in such environments to allow for client queries with provider resources dynamically, so that hardcoded bindings in the client can be avoided, thus making clients more flexible and open to change in themselves or their operating environments. Another advantage would be presented if such trading can involve many different forms of data and information, for example, trading of data sources, such as databases, files, and images, as well as open-ended resource trading. Such trading would also be advantageous if it is not computing and communication resource intensive, yet employs scalable mechanisms. Such advantages would be highly beneficial to trading of resources over distributed networks, such as the Internet and the World Wide Web.
The present invention is an improvement and advance in the technology and art. It provides the foregoing advantages and others, including by serving as an agent for programs to find on the Internet and other distributed networks, various software components, data sources, or other objects the programs can connect to or make use of in some way.